﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using BlueLotus7.ArchiveSystem.Common;


namespace BlueLotus7.ArchiveSystem.Interfaces
{
    [ServiceContract]
    public interface IArchiveStatusService : IArchiveSystemCommonService
    {
        [OperationContract]
        bool ReportStatus(Guid monitorClientKey, Guid domainScopeKey, Guid domainScopeUserKey, int status);

        [OperationContract]
        List<TargetStatus> QueryStatus(Guid? domainScopeKey, Guid? domainScopeUserKey, DateTime? startStamp, DateTime? endStamp);

        [OperationContract]
        TargetStatus RetrieveLatestStatus(Guid domainScopeKey, Guid domainScopeUserKey);

        [OperationContract]
        List<DomainScopeUser> RetrieveScopeUsersToMonitor(Guid domainScopeKey, Guid monitorClientKey);

        [OperationContract]
        List<DomainScopeUserFullInfo> GetDomainScopeUsersWithStatus(Guid? domainScopeKey);

        [OperationContract]
        void MergeStatus(Guid domainScopeUserKey, int status, Guid startGuid, Guid endGuid);
    }
}
